//
//  NSDate+YC.h
//  YCSchool
//
//  Created by gmall on 16/5/4.
//  Copyright © 2016年 yanglinxia. All rights reserved.
//

#import <Foundation/Foundation.h>

/****** YCDateInterval - begin ******/
@interface YCDateInterval : NSObject
//日 时 分 秒模型

/** 相隔多少天 */
@property (nonatomic, assign) NSInteger day;
/** 相隔多少小时 */
@property (nonatomic, assign) NSInteger hour;
/** 相隔多少分钟 */
@property (nonatomic, assign) NSInteger minute;
/** 相隔多少秒 */
@property (nonatomic, assign) NSInteger second;
@end
/****** YCDateInterval - end ******/


@interface NSDate (YC)

/****** 新的 begin*****/
- (BOOL)yc_isInToday;
- (BOOL)yc_isInYesterday;
- (BOOL)yc_isInTomorrow;
- (BOOL)yc_isInThisYear;

/// 返回当前分
+ (NSInteger)yc_getMinuteIntegerFromDateString:(NSString *)dateString formatter:(NSString *)formetter;
/// 返回当前时
+ (NSInteger)yc_getHourIntegerFromDateString:(NSString *)dateString formatter:(NSString *)formetter;
/// 返回当前年份
+ (NSInteger)yc_getYearIntegerFromDateString:(NSString *)dateString formatter:(NSString *)formetter;
/// 返回当前月份
+ (NSInteger)yc_getMonthIntegerFromDateString:(NSString *)dateString formatter:(NSString *)formetter;
/// 返回当前日
+ (NSInteger)yc_getDayIntegerFromDateString:(NSString *)dateString formatter:(NSString *)formetter;

/**
 *  计算self和anotherDate之间的时间间隔
 */
- (YCDateInterval *)yc_intervalSinceDate:(NSDate *)anotherDate;

/**
 *  求与另一个时间的时间差(指针传值)
 *
 *  @param anotherDate 另一个时间对象
 *  @param dayP        天(地址)
 *  @param hourP       时(地址)
 *  @param minuteP     分(地址)
 *  @param secondP     秒(地址)
 */
- (void)yc_intervalSinceDate:(NSDate *)anotherDate day:(NSInteger *)dayP hour:(NSInteger *)hourP minute:(NSInteger *)minuteP second:(NSInteger *)secondP;

/**
 *  返回例如:昨天 14:29这种字符串
 *
 *  @param addtime_str 时间字符串,如:2016-07-09 17:22:30
 *  @param formatter   转换格式
 *
 *  @return 处理过后的字符串
 */
+ (NSString *)yc_dateStringWithAddTimeString:(NSString *)addtime_str formatter:(NSString *)formatter;

/****** 新的 end*****/


/**
 *  返回一个只有年月日的时间
 */
- (NSDate *)yc_dateWithYMD;

/**
 *  获得与当前时间的差距
 */
- (NSDateComponents *)yc_deltaWithNow;

/**
 *  根据Date类型的时间返回时间字符串
 */
+ (NSString *)yc_createDate:(NSDate *)createdDate;

/**
 *  根据时间字符串以及格式字符串返回时间戳字符串
 *
 *  @param dateStr 时间字符串
 *  @param format  格式字符串
 *
 *  @return 时间戳字符串
 */
+ (NSString *)yc_timestampStrWithDateStr:(NSString *)dateStr format:(NSString *)format;

/**
 *  根据NSDate返回时间戳字符串
 *
 *  @param date NSDate  为nil时表示返回当前时间时间戳
 *
 *  @return 时间戳字符串
 */
+ (NSString *)yc_timestampStrWithDate:(NSDate *)date;

/**
 *  返回时间的格式是YYYY年MM月DD日
 *
 */
+ (NSString *)yc_createDateWithYYYYMMDD:(NSDate *)createdDate;

/**
 *  时间戳返回时间字符串
 */
+ (NSString *)yc_transTimeWithTimeString:(NSString *)time;

/**
 *  格式化日期对象为字符串
 *
 *  @param formatString 格式化字符串
 *
 *  @return 日期字符串
 */
- (NSString *)yc_dateStringWithFormatString:(NSString *)formatString;




@end
